﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CSharpBasic.DelegateTest
{

    /// <summary>
    /// 委托测试1
    /// 
    ///
    /// 
    /// </summary>
    public class DelegateTest3
    {

        /// <summary>
        /// 定义一个带参数委托抽象方法
        /// </summary>
        /// <param name="paramA"></param>
        /// <returns></returns>
        private delegate string GetClassNo(string paramA);

        /// <summary>
        /// new 一个委托需要指向一个方法
        /// str1.tostring 是一个String的一个方法名，
        /// 
        /// </summary>
        public static void DoTest1()
        {
            //步骤1  将实例化函数所在的类进行实例化

            ClassInfo classInfo = new ClassInfo();

            //对 委托进行 赋值 或者实例化
            GetClassNo getClassNo = classInfo.GetInfo;

            //使用这个赋值的委托实例
            string curNo = getClassNo("班级2020");

            Console.WriteLine(curNo);
        }
    }

    public class ClassInfo
    {
        /// <summary>
        /// 学号
        /// </summary>
        /// <param name="stuNo"></param>
        /// <returns></returns>
        public string GetInfo(string classNo)
        {
            return "当前班级号是:" + classNo;
        }
    }
}
